package models

import (
	"gorm.io/gorm"
	"hospital-srv/basic/inits"
	"time"
)

// 品牌表
type Brand struct {
	Id               uint64         `gorm:"column:id;type:bigint UNSIGNED;comment:品牌Id;primaryKey;not null;" json:"id"`                 // 品牌Id
	BrandName        string         `gorm:"column:brand_name;type:varchar(255);comment:品牌名称;not null;" json:"brand_name"`               // 品牌名称
	BrandLogo        string         `gorm:"column:brand_logo;type:varchar(255);comment:品牌logo;not null;" json:"brand_logo"`             // 品牌logo
	BrandDescription string         `gorm:"column:brand_description;type:varchar(255);comment:品牌简介;not null;" json:"brand_description"` // 品牌简介
	CreatedAt        time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt        time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt        gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}

// 品牌表
func (b *Brand) TableName() string {
	return "brand"
}

// 品牌添加
func (b *Brand) BrandAdd() error {
	return inits.DB.Create(&b).Error
}

// 品牌删除
func (b *Brand) BrandDel() error {
	return inits.DB.Where("id = ?", b.Id).Delete(&b).Error
}

// 品牌修改
func (b *Brand) BrandUpdate() error {
	return inits.DB.Where("id = ?", b.Id).Updates(&b).Error
}

// 品牌展示
func (b *Brand) BrandFind() (brandFind []*Brand, err error) {
	err = inits.DB.Find(&brandFind).Error
	return
}

// 品牌详情
func (b *Brand) BrandDetails() error {
	return inits.DB.Where("id = ?", b.Id).Limit(1).Find(&b).Error
}

// 品牌id查询
func (b *Brand) GetBrandId(Id int) error {
	return inits.DB.Where("id = ?", Id).Limit(1).Find(&b).Error
}
